% !Mode:: "TeX:UTF-8"

\chapter{软件需求说明}

\section{目标分析}

用户可以通过“饿了吧”软件快速浏览并购买周边各类外卖，包括早餐、跑腿代购、汉堡披萨、甜品饮品等多种美食。用户下单后可以实时查看配送信息，了解订单的最新动态，可以对商家评价和打分（此处尽量实现）。

商家可以申请入驻平台（要经管理者审核），管理待售商品，编辑菜单，指定配送范围、起送费、营业时间等，查看订单，接收订单，实时查看店铺的运营情况，可能包括销售额、评分、评价等（此处尽量实现）。

此外，饿了吧软件致力于通过外卖服务、多样化服务、在线支付与订单管理、按需推荐等多种功能，为用户提供便捷、高效、安全的生活服务平台，饿了吧要为商家们提供全方位、高效、便捷的店铺管理和订单处理功能，帮助商家提升服务质量、增加销售额，实现更好的经营效果。

\section{涉众分析}

本软件主要面向对象为用户与商家，并尽可能在1.0基础上添加骑手相关功能。

\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{sz}
\caption{涉众分析表}\label{fig:sz}
\vspace{\baselineskip}
\end{figure}

\section{业务概念分析}

如图~\ref{fig:yw}~展示了商家用户与购物车、商品、订单之间的业务处理关系。

\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{yw}
\caption{业务概念分析图}\label{fig:yw}
\vspace{\baselineskip}
\end{figure}

\section{业务状态分析}

\begin{figure}[htbp]
\centering
\includegraphics[width=0.5\textwidth]{zt}
\caption{业务状态分析图}\label{fig:zt}
\vspace{\baselineskip}
\end{figure}

\section{用户功能}
\begin{itemize}
\item{订单管理}：支持用户下订单、查看订单详情、修改订单（仅限未支付订单）、取消订单、支付订单等功能。历史订单应保留完整且不可修改，仅展示最终状态。
\item{购物车}: 用户可查看购物车中的商品详情（单价、数量）、修改数量、删除商品、结算等功能。
\item{收货地址管理}: 支持添加、编辑、删除收货地址，并能在下单时选择不同地址。
\item{个人信息管理}: 用户可查看及编辑个人信息，包括用户名、联系方式等。
\end{itemize}

\begin{figure}[htbp]
\centering
\includegraphics[width=0.4\textwidth]{cus}
\caption{用户功能图}\label{fig:cus}
\vspace{\baselineskip}
\end{figure}

\section{商家功能}
\begin{itemize}
\item{菜品管理}：商家可添加、编辑、删除菜品，设置价格、库存量等。
\item{订单管理}: 查看、处理用户订单，包括接单、配送、完成订单等状态更新。
\item{用户评价管理}: 查看并回复用户评价。
\end{itemize}

\begin{figure}[htbp]
\centering
\includegraphics[width=0.4\textwidth]{sto}
\caption{用户功能图}\label{fig:sto}
\vspace{\baselineskip}
\end{figure}

\section{系统通用功能}
\begin{itemize}
\item{页面导航}：所有页面应具备明确的导航和返回机制，确保用户能自由穿梭于各个页面。
\item{数据显示}: 确保所有数字显示（如价格、数量）准确无误，且符合常规显示规范（如使用toFixed限制小数点位数）。
\item{适配性}: 优化CSS布局，确保应用在不同设备和屏幕尺寸上均能良好显示。
\end{itemize}

\section{设计需求}
\begin{itemize}
\item{接口设计}：遵循RESTful设计风格，确保API的清晰、简洁、易于理解和使用。接口参数应明确、合理，避免冗余和不必要的复杂性。
\item{数据安全与隐私}: 敏感信息（如电话号码、密码）应通过HTTPS加密传输。存储在数据库中的敏感信息（如密码）应使用强加密算法（如bcrypt）进行加密处理。前端不应接收不必要的敏感信息，如用户密码。
\item{数据验证}: 后端应对前端提交的数据进行严格验证，防止恶意请求和数据篡改。商家操作（如删除菜品）应验证操作权限，确保操作合法。
\end{itemize}

\section{安全需求}
\begin{itemize}
\item{用户认证与授权}：实现用户登录认证机制，确保用户身份合法。根据用户角色（如普通用户、商家）分配相应的操作权限。
\item{数据保护}: 实施数据库备份与恢复策略，防止数据丢失。定期检查并更新系统安全补丁，防范已知漏洞。
\end{itemize}

\section{性能需求}
\begin{itemize}
\item{响应速度}：确保所有操作在合理时间内完成，提升用户体验。优化数据库查询和服务器响应速度，减少等待时间。
\item{异常处理}: 实现完善的异常处理机制，对可能出现的错误进行捕获和处理。针对网络异常情况（如接口超时），应有相应的重试和错误提示策略，防止重复操作导致的问题。
\end{itemize}

\section{总结}
本规格说明书详细阐述了“饿了吧”项目的软件需求，包括功能、设计、安全和性能等方面的要求。希望通过本说明书的指导，能够确保项目开发的顺利进行及v2.0的成功上线。